using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Web.UI;
using Anthem;
using Common;
using DataAccess;

public partial class PerfilesListado : PageBase
{
    #region Propiedades

    public string IdentificadorPerId
    {
        get { return (ViewState["IdentificadorPerId"] == null ? string.Empty : ViewState["IdentificadorPerId"].ToString()); }
        set { ViewState["IdentificadorPerId"] = value; }
    }
    private DataTable SigPerfilesDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[AdmPermisosData.ADM_PERMISOS_TABLE + Session.SessionID] != null)
                objTable = (DataTable)Cache[AdmPermisosData.ADM_PERMISOS_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(AdmPermisosData.ADM_PERMISOS_TABLE + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        lblMensaje.Visible = false;
        if (!Page.IsPostBack)
        {
            cargarPerfiles();
        }
        lblMensaje.Visible = false;
        lblMensaje.AutoUpdateAfterCallBack = true;
        WccAcciones1.Permisos = Permisos;
        if (Manager.IsCallBack)
        {
            Manager.RegisterClientScriptBlock(typeof(Page), "reloj", "<script>muestraReloj2();</script>");
        }
        ////////////////////////////
        // cargar Usuarios de cache //
        ////////////////////////////
        if (SigPerfilesDataTable != null)
        {
            if (SigPerfilesDataTable.Rows.Count > 0)
            {
                gridPerfiles.DataSource = SigPerfilesDataTable.DefaultView;
                gridPerfiles.DataBind();
            }
        }
    }

    #endregion

    #region cargarPerfiles

    private void cargarPerfiles()
    {

        BusinessRules.Perfiles objPerfiles = new BusinessRules.Perfiles(ConfigurationManager.AppSettings["Conn"]);
        AdmPerfilesData objAdmPerfilesData = objPerfiles.BuscarPerfiles();
        SigPerfilesDataTable = objAdmPerfilesData;
        gridPerfiles.DataSource = objAdmPerfilesData;
        gridPerfiles.DataBind();

    }

    #endregion

    #region WccAcciones1_Add_OnClick

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("Perfiles.aspx?SSM_ID=17", true);
    }

    #endregion

    #region crearContextItems

    private void crearContextItems()
    {
        try
        {
            Context.Items["IdentificadorPerId"] = IdentificadorPerId;
        }
        catch (Exception ex)
        {
            lblMensaje.Text = ex.ToString();
        }
    }

    #endregion

    #region WccAcciones1_Delete_OnClick

    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        lblMensaje.Visible = true;
        List<object> keyValues = gridPerfiles.GetSelectedFieldValues("PER_ID");
        try
        {
            string[] strIDs = new string[30];
            int intCurrentItems = 0;
            foreach (object key in keyValues)
            {
                intCurrentItems++;
                strIDs[intCurrentItems] = key.ToString();

            }

            BusinessRules.Perfiles objPerfiles = new BusinessRules.Perfiles(ConfigurationManager.AppSettings["Conn"]);

            if (objPerfiles.EliminarPerfilContransacciones(strIDs) != 0)
            {
                lblMensaje.Visible = true;
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgEliminarRegistrosExitoso"), lblMensaje);
            }
            cargarPerfiles();
            gridPerfiles.Selection.UnselectAll();
        }

        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, ex.Message, lblMensaje);

        }
    }

    #endregion

    #region WccAcciones1_Update_OnClick

    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gridPerfiles.GetSelectedFieldValues("PER_ID");

        
            foreach (object key in keyValues)
            {

                IdentificadorPerId = key.ToString();
            }
            crearContextItems();
            Server.Transfer("Perfiles.aspx?SSM_ID=17", true);
    }

    #endregion

}